package Management.c;

//输出学生信息
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.IOException;

public class TestMain1
//表明是一个公开的类
// public 代表公开
// class就是班级 也就是类的意思
// test是这个类的内容
// {}里面写 这个类的内容
{
    public static void main(String[] args) {
//        System.out.println("-----请输入文件excel------");
//        System.out.println("-----0.返回上一级l--------");
//        String path = sc.nextLine();
        String path = "E:/java/计算19数据库学生考勤表考勤记录表.xlsx";
        // 文件存不存在
        File file = new File(path);
        if (!file.exists()) { // 文件不存在的话
            System.out.println("-----文件不存在的话--------");
        } else {
            // 工作薄
            XSSFWorkbook wb = null;
            try {
                wb = new XSSFWorkbook(file);
                // 获取第一个sheet页
                XSSFSheet sheet1 = wb.getSheetAt(0);

                for (int i = 5; i <= sheet1.getLastRowNum(); i++) {
                    // 获取单元格
                    XSSFRow row = sheet1.getRow(i);
                    XSSFCell cell1 = row.getCell(0);
                    XSSFCell cell2 = row.getCell(1);
                    System.out.println(cell1.getStringCellValue());
                    System.out.println(cell2.getStringCellValue());
                }

                wb.close();
            } catch (IOException e)
            /*
try{

}catch(Exception ex){
异常处理
}
这样作不但能够防止程序异常终止
并且在出现错误时能够及时做一些释放资源处理，
对程序能继续健壮的运行下去尤为重要。
html
可是C语言中没有这样异常处理机制
咱们能够经过宏定义去实现相似这样的操做
这时候就使用到C语言强大而又被咱们‘嫌弃’的goto语句了。
异常处理框架
在BEGINPROC和ENDPROC里处理咱们的程序，有
异常的状况时跳到CATCHERROR和ENDERROR里统一处理
几种异常条件宏定义：
数组
异常统一处理宏定义：
框架
下面咱们来分析这三种状况：
不知足某种条件产生异常跳转：
这里是判断数组是否索引是否越界
是越界则判断跳转失败
能够看到，这里打印了出错的函数名、行号和错误码，
出错的时候抛出错误，统一处理：
这里咱们打开文件或分配内存失败都统一到错误处理当中，
而不是直接return返回。
这是一种很好的处理方法，否则很容易致使内存泄露或文件未关闭，
当使用return语句时，文件未打开成功，则返回
而当文件打开成功，而内存申请失败的时候，
文件未正常关闭。
使用了框架后，咱们把使用的资源都做一个统一的管理，
这样就不会轻易形成资源泄露的问题了，
同时也有问题定位打印信息
执行函数是否成功而跳转：
当函数执行的返回值不成功时，咱们也进行到异常跳转，进行统一处理
以上就是C语言的一些常见的异常处理，
固然还有其余的异常处理条件，可是基于以上框架能够很容易的作到
             */
            {
                e.printStackTrace();
            } catch (InvalidFormatException e) {
                e.printStackTrace();
            }

        }
    }
}

